package jiuxing

type Msg33 struct {
	Tm          []byte
	Plug        byte
	RecordSn    uint32
	Order       string
	UserID      string
	UserType    uint16
	GroupCode   string
	CardBalance uint32
	Vin         string
	BeginTime   []byte
	EndTime     []byte
	BeginPwr    uint32
	EndPwr      uint32
	BeginSoc    byte
	EndSoc      byte
	CtlMode     byte
	CtlParam    uint32
	StartMode   byte
	StartTime   []byte
	ChargeMode  byte
	StopReason  uint16
	BillMode    byte
}

func (msg *Msg33) Decode(b []byte) {
	item := NewByteArray(b)
	msg.Tm = item.GetTimeArray(0)
	msg.Plug = item.GetUint8(6)
	msg.RecordSn = item.GetUint32(7)
	msg.Order = item.GbkString(11, 32)
	msg.UserID = item.GbkString(43, 32)
	msg.UserType = item.GetUint16(75)
	msg.GroupCode = item.GbkString(77, 9)
	msg.CardBalance = item.GetUint32(86)
	msg.Vin = item.GbkString(90, 17)
	msg.BeginTime = item.ByteArray(107, 6)
	msg.EndTime = item.ByteArray(113, 6)
	msg.BeginPwr = item.Get3ByteUint32(119)
	msg.EndPwr = item.GetUint32(123)
	msg.BeginSoc = item.GetUint8(127)
	msg.EndSoc = item.GetUint8(128)

	msg.CtlMode = item.GetUint8(129)
	msg.CtlParam = item.GetUint32(130)
	msg.StartMode = item.GetUint8(134)
	msg.StartTime = item.ByteArray(135, 6)
	msg.ChargeMode = item.GetUint8(141)
	msg.StopReason = item.GetUint16(142)
	msg.BillMode = item.GetUint8(144)
}
